/**
 * @param {string} s
 * @return {boolean}
 */
var isPalindrome = function(s) {
    if(s === '') {
        return true
    }
    s = s.replace(/[^A-Za-z0-9]/g,'').toLowerCase()
    return s === s.split('').reverse().join('')
};

// // 测试用例1: 空字符串
// console.log(isPalindrome("")); // true
//
// // 测试用例2: 单个字符
// console.log(isPalindrome("a")); // true
//
// // 测试用例3: 标准回文字符串
// console.log(isPalindrome("aba")); // true
// console.log(isPalindrome("abcba")); // true
//
// // 测试用例4: 非回文字符串
// console.log(isPalindrome("abc")); // false
// console.log(isPalindrome("hello")); // false

// 测试用例5: 包含特殊字符和空格的回文
const str = "A man, a plan, a canal: Panama";
console.log(str.replace(/[A-Za-z0-9]/g,''))
console.log(isPalindrome(str))// true
// console.log(isPalindrome("race a car")); // false
//
// // 测试用例6: 大小写混合
// console.log(isPalindrome("Madam")); // true
// console.log(isPalindrome("RaceCar")); // true
//
// // 测试用例7: 只包含特殊字符
// console.log(isPalindrome("!!!")); // true (处理后为空字符串)
//
// // 测试用例8: 数字和字母混合
// console.log(isPalindrome("A1B2b1a")); // true
// console.log(isPalindrome("12321")); // true
